#!/bin/sh
# =====================================================
# Kwrt 安装 cpolar 并启动脚本 (ARMv8 aarch64)
# =====================================================

# 进入 root 家目录
cd ~

# 下载 cpolar 压缩包
echo "[1/6] 下载 cpolar..."
wget -O cpolar-stable-linux-arm64.zip https://www.cpolar.com/static/downloads/releases/3.3.12/cpolar-stable-linux-arm64.zip

# 安装 unzip，如果没有的话
echo "[2/6] 检查 unzip..."
if ! command -v unzip >/dev/null 2>&1; then
    opkg update
    opkg install unzip || echo "unzip 安装失败，继续..."
else
    echo "unzip 已存在，跳过安装"
fi

# 解压
echo "[3/6] 解压 cpolar..."
unzip -o cpolar-stable-linux-arm64.zip -d /tmp/

# 移动到 /usr/bin 并授权
echo "[4/6] 移动 cpolar 到 /usr/bin..."
mv /tmp/cpolar /usr/bin/
chmod +x /usr/bin/cpolar

# 创建配置和日志目录
CPOLAR_DIR="/usr/cpolar"
LOG_DIR="$CPOLAR_DIR/logs"
echo "[5/6] 创建配置和日志目录..."
mkdir -p $CPOLAR_DIR
mkdir -p $LOG_DIR

# 创建空配置文件和日志文件（用户可编辑 cpolar.yml）
CONFIG_FILE="$CPOLAR_DIR/cpolar.yml"
ACCESS_LOG="$LOG_DIR/access.log"

if [ ! -f "$CONFIG_FILE" ]; then
    cat > $CONFIG_FILE <<'EOF'
tunnels:
  cpolar-web-ui-9200:
    id: 424c02ca-8470-471c-acfa-18eadd5a28c5
    proto: http
    addr: "9200"
    inspect: "false"
    bind_tls: both
    region: cn_top
    disable_keep_alives: "false"
    redirect_https: "false"
    start_type: enable
  kwrt-web-ui-80:
    id: 9be63916-dc5f-4ddd-a5da-826f15d36470
    proto: http
    addr: "80"
    inspect: "false"
    bind_tls: both
    region: cn_top
    disable_keep_alives: "false"
    redirect_https: "false"
    start_type: enable
EOF
fi

if [ ! -f "$ACCESS_LOG" ]; then
    touch $ACCESS_LOG
fi

# 启动 cpolar
echo "[6/6] 启动 cpolar..."
CPOLAR_CMD="/usr/bin/cpolar start-all -dashboard=on -daemon=on -config=$CONFIG_FILE -log=$ACCESS_LOG"
# 后台启动，避免阻塞当前终端
if command -v nohup >/dev/null 2>&1; then
    nohup sh -c "$CPOLAR_CMD" >/dev/null 2>&1 &
else
    sh -c "$CPOLAR_CMD" >/dev/null 2>&1 &
fi
sleep 1

echo "cpolar 已启动，配置文件：$CONFIG_FILE，日志文件：$ACCESS_LOG"

# 输出 cpolar 版本并提示安装成功
echo "cpolar 版本信息："
/usr/bin/cpolar version
echo "安装成功！如需停止可执行：/usr/bin/cpolar stop-all"
